﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _13_Builder
{
    class Program
    {
        /*
         建造者模式(Builder,生成器模式)： 将一个复杂对象的构建与它的表示分离，使得同样的构建过程可以创建不同的表示的意图。

         用户只用指定需要见着的类型，而具体建造的过程和细节就不需要知道了
             */
        static void Main(string[] args)
        {
            /*通过过程抽象封装，简洁而优雅的客户端的代码 。需求的修改和变动维护就很方便。  */
            PersonBuilder pb = new PersonThinBuilder();
            PersonDirector pbDirector = new PersonDirector(pb);
            pbDirector.CreatePerson();
            Console.Read();
        }
    }
}
